home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 255_01 / gpwritrw.asm < prev    next >
Encoding:
Assembly Source File  |  1988-03-28  |  1.4 KB  |  63 lines

  1.           page   80,132
  2.           page
  3. ;
  4. ;         Kent Cedola
  5. ;         2015 Meadow Lake Court
  6. ;         Norfolk, Virginia  23518
  7. ;
  8.  
  9. dgroup    group  _data
  10.  
  11. _data     segment word public 'data'
  12.           assume ds:dgroup
  13.  
  14.           extrn  _xdwritbp:word
  15.           extrn  _xdwritw1:word,_xdwritw2:word,_xdwritw3:word
  16.           extrn  _xdwritb1:byte
  17.  
  18. _data     ends
  19.  
  20. _text     segment byte public 'code'
  21.  
  22.           assume cs:_text,ds:dgroup
  23.           public _gpwritrw
  24.  
  25. _gpwritrw proc   near
  26.  
  27.           push   si
  28.           push   di
  29.  
  30.           mov    si,_xdwritbp
  31.           mov    di,0
  32.           mov    es,_xdwritw1
  33.           mov    cx,_xdwritw3
  34.  
  35.           mov    dx,03CEh              ; Load graphic controller's address port
  36.           mov    al,8                  ; Mask value is in address eight (8)
  37.           out    dx,al                 ; Point to the mask register
  38.           inc    dx                    ; Bump port addr to the mask register
  39.  
  40.           mov    ah,_xdwritb1
  41.  
  42.           mov    al,es:[di]
  43. nextbit:
  44.           mov    al,ah
  45.           out    dx,al
  46.           lodsb
  47.           xchg   es:[di],al
  48.           ror    ah,1
  49.           adc    di,0
  50.           loop   nextbit
  51.  
  52.           mov    ax,_xdwritw2
  53.           add    _xdwritw1,ax
  54.  
  55.           pop    di
  56.           pop    si
  57.           ret
  58.  
  59. _gpwritrw endp
  60.  
  61. _text     ends
  62.           END
  63.